package untiring07.mvc.actions;

import java.io.IOException;
import java.rmi.ServerException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import untiring07.mvc.dao.BoardDAO;

public class ListBoardAction implements ActionHandler {

	@Override
	public String execute(HttpServletRequest req, HttpServletResponse res)
			throws ServerException, IOException {
		
		// 페이징 관련 변수 선언
		int cpage = 1, perpage = 20, startno = 0;
		
		//총 페이지수, 내비게이션 시작번호,글번호 변수
		int allpage, startnav = 1,startnav1, startbno;
		
		//검색관련 변수
		String ftype = "",fkey="";
		
		//검색 유형과 검색값 처리
		if(req.getParameter("findtype")!= null){
			ftype = req.getParameter("findtype");
		}
		if(req.getParameter("findkey")!= null){
			fkey = req.getParameter("findkey");
		}
		
		//cpage, startno 계산
		if(req.getParameter("cpage")!=null)
			cpage = Integer.parseInt(req.getParameter("cpage"));
		startno = (cpage-1)*perpage;
		
		//총 페이지수
		int total = BoardDAO.totalBoard(ftype,fkey);
		allpage =(int)Math.ceil((float)(total/perpage)) ;
		//내비게이션 시작번호
		startnav = ((cpage-1)/10)*10+1;
		startnav1 = ((allpage-1)/10)*10+1;
		//글번호 변수
		startbno = total-(perpage*(cpage-1));
		//뷰로 전달할 데이터 지정
		String viewPage = "f|/WEB-INF/jsp/tiles/mvc.jsp";
		req.setAttribute("action", "../board/list.jsp");
		
		
		//게시판 관련 데이터
		req.setAttribute("total", total);
		req.setAttribute("cpage", cpage);
		req.setAttribute("ftype", ftype);
		req.setAttribute("fkey", fkey);
		
		req.setAttribute("listBoards", BoardDAO.listBoard(startno, ftype, fkey));
		req.setAttribute("allpage", allpage);
		req.setAttribute("startnav", startnav);
		req.setAttribute("startbno", startbno);
		req.setAttribute("startnav1", startnav1);
		return viewPage;
	}

}
